//
// Created by kunnkali on 2023/5/23.
//

#ifndef TNET_PREFIX_H
#define TNET_PREFIX_H

#include <type_traits>

#define TNET_API


//TODO
// system info
#if defined(_WIN32) || defined(_WIN64)
//#error "Not support Windows platform"
#else
#  ifdef __ANDROID__
#    define TNET_ANDROID 1
#  elif defined(__linux__)
#    define TNET_LINUX 1
#  else
#    include <TargetConditionals.h>
#    if TARGET_IPHONE_SIMULATOR
#      define TNET_SIMULATOR 1
#    elif TARGET_OS_IPHONE
#      define TNET_IPHONE 1
#    elif TARGET_OS_MAC
#      define TNET_MAC 1
#    else
#      error "Unknown Apple platform"
#    endif
#  endif
#endif

/* This is a shorthand macro for deleting a class's copy constructor and
 * copy assignment operator */
#define TNET_DECLARE_NON_COPYABLE(className)                                                                      \
  className(const className&) = delete;                                                                                \
  className& operator=(const className&) = delete;

#endif  // TNET_PREFIX_H
